home *** CD-ROM | disk | FTP | other *** search
/ ShareWare OnLine 2 / ShareWare OnLine Volume 2 (CMS Software)(1993).iso / bbsdoors / ckit258.zip / HISTORY < prev    next >
Text File  |  1993-06-01  |  33KB  |  767 lines

  1.                                  RELEASE HISTORY
  2. v.2.56
  3. 01-10-93
  4.  
  5. -  Fixed a bug from 1/4/93 whereas CKIT was attempting to
  6.    allocate too much memory.  Fixed. (I promise this time)
  7.  
  8. 01-04-93
  9.  
  10. -  Fixed a bug where CKIT was attempted to free memory
  11.    that had not been allocated.  This only occured if
  12.    you were using CKIT with GENERIC.SYS.
  13.  
  14. -  Added 2 routines to do clean/maintenance before and after
  15.    a call to a spawn routine.   This will allow a user to use
  16.    any of C's spawn function.
  17.    The two routines MUST called before and after a spawn.
  18.    One before and one after.
  19.      The two routines are:
  20.  
  21.     ck_shell_entry();               /* Prepare CKIT for a DOS Shell */
  22.                                     /* Called BEFORE a spawn        */
  23.  
  24.     ck_shell_exit();                /* Clean up after a shell       */
  25.                                     /* Called AFTER a spawn         */
  26.  
  27.  
  28.   Example of usage is in CKITDEMO.C under the zipfile() routine.
  29.   Example taken from CKITDEMO.C
  30.  
  31.       if(strstr(pkzname, ".BAT")) {
  32.           ck_shell_entry();               /* Prepare CKIT for a DOS Shell */
  33.           sprintf(pkzcmds, "-a %s ckit.doc", zip_filename);
  34.           errorlevel = spawnlp( P_WAIT, pkzname, pkzname, pkzcmds, NULL );
  35.           ck_shell_exit();                /* Clean up after a shell  */
  36.       } else {
  37.           ck_shell_entry();               /* Prepare CKIT for a DOS Shell */
  38.           sprintf(pkzcmds, "-a %s ckit.doc", zip_filename);
  39.           errorlevel = spawnlp(P_WAIT, pkzname, pkzname, pkzcmds, NULL );
  40.           ck_shell_exit();                /* Clean up after a shell  */
  41.       }
  42.  
  43.  
  44.   NOTE:  The old CKIT function ck_dos_shell() is still operational
  45.          for compatibility but may be removed in future updates.
  46.          Therefore it is recommended you change your code to
  47.          use these routines instead.
  48.  
  49. v.2.54
  50. 12/01/92
  51.  
  52. -  Fix problem with higher IRQ's.   CKIT has been tested and
  53.    will work with interrupts 0-15 and any port address.
  54.    The irq should be entered in decimal. (the port is in hex).
  55.    i.e. PORT:03E8:12 tells CKIT to use port 03E8 interrupt 12.
  56.  
  57. -  Cleaned some up code with optimization.
  58.  
  59. v.2.52
  60. 10/22/92
  61.  
  62. -  Changed _ck_gen_msgs and ck_logoff_msgs so that they use
  63.    standard output instead of BIOS.  This will allow use of
  64.    ANSI controls in message strings to change colors, cursor
  65.    control etc.
  66.  
  67. -  Fixed a bug in the ck_get_cmdline() routine.
  68.  
  69. 09-25-92 v2.50
  70.  
  71. -  Added Support for Digiboard Universal driver for Digiboards.
  72.    Use same as the Fossil command to open_door.
  73.    Instead of F in the port command, use a D. (for Digiboard)
  74.    PORT:D:x    -  x equal channel number.
  75.  
  76. -  Added Support for highter interrupts (8-15).
  77.  
  78. -  Updated CKIT.H to make it more compatible with C++ compilers and
  79.    added/corrected a few ckit variables that were missing.
  80.  
  81. 04/25/92
  82.  
  83. -  Changed CKIT to use less near heap space.
  84.    There is now approx. 4.3K more near data
  85.    space in the small and medium models and
  86.    2.2K more near data space in the large
  87.    memory model.
  88.  
  89. 04/22/92
  90.  
  91. -  Fixed CKIT to handle node numbers greater than 99 with door.sys
  92.  
  93. -  Fixed CKIT to be compatible with PCB14.5A /X version for node
  94.    numbers when using pcboard.sys.
  95.  
  96. 04/12/92
  97.  
  98. -  Added ck_NO_STATUS.  When TRUE, tells CKIT not to create
  99.    a status line.    Must be set to desired state before
  100.    open_door() is called.  Once open_door() is called,
  101.    it cannot be changed.
  102.  
  103.  
  104. -  Optimized some code in the large model's ck_input() and
  105.    corrected a bug at the same time.  At times, ck_input
  106.    was skipping a character in the input bufer.
  107.    Corrected.
  108.  
  109. 12-15-91 v2.10
  110.  
  111. -  Changed the way CKIT was handling the speaker beep
  112.    on keyboard timeout beeps.
  113.  
  114. -  Added ck_NOSYSTEM.  When TRUE, tells CKIT open_door() not
  115.    not to expect a filename but a pointer to a structure
  116.    for it's information.  The structure is typed in ckit.h as
  117.  
  118.    typedef struct ckitgeneric {
  119.     char port[6];                   /* COM:X  COM0: equals local  */
  120.     short min_left;                 /* minutes left */
  121.    };
  122.  
  123.    This will allow your door program to read any BBS system file
  124.    and pass the information CKIT needs thru the structure.
  125.    open_door() will still accept the port:AAAA:X.
  126.  
  127.  
  128.    If you don't need this, then no changes are necassary in your source
  129.    code.  However, if you would like make your door compatible with a
  130.    BBS system that CKIT does not support (such as WWIV), then you
  131.    can read the WWIV file, fill in the appropriate CKIT variables
  132.    (ck_fullname, ck_ckit, etc) and the ckitgeneric structure with
  133.    the port and minutes left.  Then set CK_NOSYSTEM = TRUE, and call
  134.    open_door().  You should fill in ck_fullname, ck_baud etc before
  135.    you call open_door() so that the status line will contain the
  136.    proper information.  If you don't, it won't hurt anything and
  137.    CKIT will pick it anyway the next time it updates the status line.
  138.    (either after one minute or by typing ALT-H to scroll thru).
  139.    Be careful you pay attention to the size of the CKIT arrays that
  140.    you will be filling in and you don't exceed them.  For instance,
  141.    ck_fullname is declared as ck_fullname[26] (including null).
  142.    Check the docs for the size/types of the variables.
  143.  
  144. - Added ck_NO_FKEYS.  When TRUE it will disable the local
  145.   sysop keyboard F-keys and ALT keys except for ALT-H.
  146.   Default is FALSE. (F-keys enabled)
  147.  
  148. - Change set_kybd_time() so that each call to it zeros the
  149.   present keyboard timer time
  150.  
  151. - A big one here.  I think I finally tracked down the cause
  152.   of CKIT suddenly hanging at times up while transmitting
  153.   for no reason while it was apprently waiting on CTS when
  154.   CTS  was OK.  I finally managed to duplicate it repeatly and
  155.   found the cause.
  156.  
  157. - Fix a bug were a if you specified USERSFILE=TRUE and there
  158.   was an error opening the users file, it trashed a register
  159.   internally that shouldn't have gotten trashed.  Under normal
  160.   conditions it would not have affected anything. (if the users
  161.   file was opened OK).
  162.  
  163. - If Ckit finds a generic.sys file in use, it will no longer ask
  164.   for the person's first and last name.  You will have to add this
  165.   to your program to do so. i.e.
  166.           if(GENERIC) {
  167.             newline();
  168.             s_puts("Please enter first and last name (MAX 25) ->");
  169.             get_cmdline_raw(45);
  170.             strncpy(fullname, cmdline, 25);
  171.         }
  172.  
  173. - New variable added called short ck_silent.  This variable when TRUE
  174.   will prevent keyboard timeout beeps from being sent to the local
  175.   console.  It can be set/reset manual thru your program and it will
  176.   also following the setting of F7 for PCBoard systems. (caller alarm toggle).
  177.  
  178. - Fixed some ANSI strings in the library so that it will no longer
  179.   attempt to set background color to black.  This should make things
  180.   a little easier for people using background colors other than black
  181.   and will allow you to only change the foreground colors (leaving the
  182.   background alone) when using ck_color();.
  183.  
  184. - Ckit was not always picking the node number up correctly from
  185.   DORINFOx.DEF files. (x being the node number).  Fixed.
  186.  
  187. 09-25-91 v2.08
  188.  
  189. -   Changed ck_DOTS operation.
  190.     Setting ck_DOTS = char will cause char to be echoed to the
  191.     remote/local console.  ck_DOTS = NULL cancels.
  192.  
  193. -   ck_system_time_used() was prototyped incorrectly in ckit.h
  194.     as ck_system_time_left().  Fixed.
  195.  
  196. -   Some variables in ckit.h did not have the "ck_" prefixed
  197.     to the variable name.  Fixed.
  198.  
  199. -   Added support to MBBS systems. (PCBoard clone found in largely Europe).
  200.  
  201. -   Changed ck_set_ANSI() to accept TRUE/FALSE (short) depending
  202.     whether or not the user wanted to turn ANSI compability ON or OFF.
  203.     The previous ck_set_ANSI() toggled this setting.  The prototype
  204.     for ck_set_ANSI is now -  short  ck_set_ANSI(short) where the short
  205.     is either TRUE/FALSE.  (1 or 0).  It returns whatever you pass it.
  206.  
  207.     Why is this routine necassary?   When C-kit first opens a system file
  208.     it determines from the file whether the wanted the user wants
  209.     ANSI control, (ansi_NG will be set, GRAPHICS FALSE) OR if they wanted
  210.     ANSI control with graphics (ansi_NG false, GRAPHICS TRUE).  To save
  211.     code size and execution time in the internal library rountines
  212.     (such as ck_pos_cursor etc) , there is only one internal variable
  213.     that C-kit checks to see if ANSI was desired.  This routine only becomes
  214.     necassary when a user of your door is using generic.sys.  The
  215.     generic.sys has no way of knowing whether the user wanted ANSI or
  216.     has ANSI selected.   If the door program detects that a generic.sys
  217.     file is being used, it should then stop and ask if the user desires
  218.     ANSI control and if the user wants ANSI control with color.
  219.     set ansi_ng TRUE, graphics FALSE  and ck_set_ANSI(TRUE)  (ansi w/o color)
  220.     set ansi_ng FALSE, graphics TRUE  and ck_set_ANSI(TRUE)  (ansi w/color)
  221.     set ansi_ng FALSE, graphics FALSE and ck_set_ANSI(FALSE) (no ansi)
  222.  
  223.     Notice that ck_set_ANSI() is the logical OR'ing of the other two
  224.     variables (ansi_ng and graphics) which is what C-kit does at the
  225.     begining of a door.  That way instead of doing this each time
  226.     routines such as ck_pos_cursor() etc.. is called it only has to
  227.     check one variable making the code smaller and faster.
  228.  
  229. -   Changed ck_dos_shell() to use the spawnlp() funtion in C.
  230.     The syntax for ck_dos_shell() has changed.  It is now
  231.     prototyped as ck_dos_shell(char *, char *); where
  232.     the 1st string pointer is the program to execute and
  233.     the 2nd string pointer is the command line arguments
  234.     to be passed to the program. Example taken from
  235.     CKITDEMO.C.  It should return an error level correctly
  236.     now reguardless of which compiler you are using.
  237.     The max. DOS limit for the length of cmd line arguments
  238.     is 128 chars so the 2nd string pointer should not exceed this.
  239.  
  240.    void    filexfer(void) {
  241.    sprintf(zmodem_cmds, "portx %X,%X pB4096 pa3000 handshake cts sz %s", \
  242.             uart_base, irq, doc_filename);
  243.     if(dos_shell("dsz", zmodem_cmds)) {
  244.         s_puts("\n\aTransfer aborted");
  245.     } else {
  246.         s_puts("\nTransfer complete");
  247.     }
  248.  
  249. -   There was a minor change in the ckit.h file under the
  250.     users structure.  Added user.packed_byte after user.protocol.
  251.     This location had not been used in previos PCBoard releases.
  252.     Changed ck_user.last_read to ck_user.last_read[39] in
  253.     user file structure.
  254.  
  255. -   Yes, Gary, you no longer have to use word alignment when using
  256.     the user structure or ck_update_user() function!.  This means
  257.     also that Microsoft C users will need to add the Zp1 switch
  258.     on the command line.  Zp1 tells MSC to pack structures on
  259.     1 (BYTE) bounderies.
  260.  
  261. 08-18-91 v2.0
  262.  
  263. -   It is not necassary to use WORD alignment EXCEPT if you
  264.     plan on using the user structure or the update_user() function.
  265.     Otherwise, BYTE or WORD alignment should work OK.
  266.  
  267. -   Added the short ck_system_time_used(void); function.
  268.  
  269. -   ALL ckit's variables/functions now begin with the letters "ck_"
  270.     See upgrade file.
  271.  
  272.  -  Added ck_DOTS.  This will cause dots "." to be echoed to
  273.     the screen when true and using one of the keyboard inputs.
  274.  
  275.  -  Fixed fullname so that it will display more than 2 names for
  276.     PCBboard 14.5.
  277.  
  278.  -  Ckit will no longer exit your program on it's own.  If open_door()
  279.     fails, it will now return an error code based what the problem it
  280.     had.  If open_door() is successful,  it will return a NULL.
  281.     The error codes are as follows:
  282.      ==========
  283.         1   ;Unable to open BBS system file (pcboard.sys,door.sys etc)
  284.         2   ;Problem reading BBS system file
  285.         3   ;Unrecognized BBS file type
  286.         4   ;Unable to open pcboard USERS file
  287.         5   ;Invalid User record or problem seeking to user record
  288.         6   ;Problem reading USER record
  289.         7   ;PORT command syntax error
  290.         8   ;Fossil driver specified but no Fossil driver installed
  291.         9   ;Memory allocation problem
  292.  
  293. -   Added ability to change ALL of Ckit's exit message and they can be
  294.     of any length.  The code looks for an array of pointers to the exit
  295.     messages and uses the option variable to pick which one to print.
  296.     This pointer to the array of pointer is now public so you can
  297.     define you own array of pointers to the 5 exit messages.  They must
  298.     be in this order.  See ck_logoff_msgs;
  299.  
  300. -  display_file() will only print a "generic" message now.
  301.    "ERROR: Unable to open file!\a\r\n".  If you want it to print
  302.    a specific file error message, the you need to change error_msg11.
  303.    This message is limited to 47 characters NOT including the NULL terminator.
  304.    strcpy(error_msg11, "\a\nUnable to locate CKIT.DOC");
  305.         if(display_file(doc_filename)) {
  306.                 newline();
  307.         };
  308.  
  309. -  Added set keyboard time out routine.  This will allow the door author
  310.    to set keyboard timer.  See set_kybd_time();
  311.  
  312. -  The keyboard timer will not beep locally now if display has been turned
  313.    off.  (display = FALSE).
  314.  
  315. -   Added ability to change Ckit's general purpose messages.
  316.     See ck_gen_msgs;
  317.  
  318. -    Added system_time_used().   This will report back the number of minutes
  319.      since the door was opened.  It does include time used in previous calls.
  320.      You can use this function along with mins_left_system() to create
  321.      you prompt the same way display_time() does.
  322.      s_printf("( %d used, %d left)", system_time_used()+prev_used, \
  323.                                       mins_left_system()+time_credit);
  324.  
  325. -   The global variable option will now be available BEFORE a call to
  326.     close_door() is made.  If DUMP_USER goes TRUE, you can now check
  327.     option to see why it went TRUE BEFORE calling close_door().
  328.  
  329. -   Fixed a problem in the large model libraries
  330.     with updating users record.
  331.  
  332. -  Change syntax of ansi_NG to ansi_ng in MSC libraries.
  333.  
  334. -   Fixed a problem with the port command that only occured
  335.     if port was passed as the 3rd argument
  336.  
  337. -   Changed get_cmdline() to accept chars > than ASCII 128
  338.  
  339. -   Added switch for ansi when using PCB14.5+ pcboard.sys file
  340.     to know if the caller wanted ANSI but no color.
  341.  
  342. -   Ckit was not allowing ANSI cursor commands if the door.sys file
  343.     had the user set for ANSI with no graphics.  (ansi_ng).  Fixed.
  344.  
  345. -   Added a new variable short non_ibm.  This indicates whether the caller
  346.     called using 7 bits instead of 8 bits.  Using 7 bits doesn't allow
  347.     for IBM graphic characters above 128 to be displayed correctly.
  348.  
  349. -   Added time_credit, and mins_left_system() to the door documentation.
  350.     These were always available but was left out of the documentation
  351.     for some unknown reason..:)
  352.  
  353. -   Added two more variables:
  354.     short uart_base -  will contain the base address of the port in use.
  355.     short irq - will contain the interrupt request in use.
  356.  
  357. -   Corrected a problem with display_file again.. Also rearranged
  358.     and optimized some code in the display_file().   You should
  359.     see a SUBSTANTIAL improvement in the way display_file works for
  360.     speed.
  361.  
  362. -   Increased the strings main_dir[] and gen_dir[] from 15 chars.
  363.     to 80 characters.
  364.  
  365. -   Added proto's for Ctrl-K set of functions that were left out
  366.     of CKIT.H
  367.  
  368. -   CKIT.H had a variable called current_conference.  This should
  369.     have been called current_conf.  fixed
  370.  
  371. -   If you were using pos_cursor() (ANSI cursor control) and you
  372.     were displaying peices of a string on the same line, and
  373.     you didn't have any line feeds and you went past line 22
  374.     (into the local status bar), Ckit would try and scroll the
  375.     screen each time you called pos_cursor() with a row number
  376.     greater than 22 even though you were still on the same line.
  377.     Fixed.
  378.  
  379.  
  380. 07-15-91
  381. -   Added switch for ansi when using PCB14.5+ pcboard.sys file
  382.     to know if the caller wanted ANSI but no color.
  383.  
  384. -   Ckit was not allowing ANSI cursor commands if the door.sys file
  385.     had the user set for ANSI with no graphics.  (ansi_NG).  Fixed.
  386.  
  387. -   Added a new variable short non_ibm.  This indicates whether the caller
  388.     called using 7 bits instead of 8 bits.  Using 7 bits doesn't allow
  389.     for IBM graphic characters above 128 to be displayed correctly.
  390.  
  391. -   Fixed a problem in the LARGE memory model where it was not reading
  392.     a DORINFOx.DEF file correctly for the graphics preference.
  393.  
  394. 07-08-91  v1.81ß
  395. -   Added time_credit, and mins_left_system() to the door documentation.
  396.     These were always available but was left out of the documentation
  397.     for some unknown reason..:)
  398.  
  399. 07-Jul-91 v1.81ß
  400.  
  401. -   Added two more variables in CKIT.H.
  402.     short uart_base -  will contain the base address of the port in use.
  403.     short irq - will contain the interrupt request in use.
  404.  
  405. -  Optimized some code in the interrupt handlers.
  406.  
  407. 02-Jul-91 v1.81ß
  408.  
  409. -   Corrected a problem with display_file again.. Also rearranged
  410.     and optimized some code in the display_file().   You should
  411.     see a SUBSTANTIAL improvement in the way display_file works for
  412.     speed.
  413.  
  414. -   Increased the strings main_dir[] and gen_dir[] from 15 chars.
  415.     to 80 characters.
  416.  
  417. -   Optimized some other code in CKIT.
  418. 21-Jun-91 v1.81ß
  419.  
  420. -   Added proto's for Ctrl-K set of functions that were left out
  421.     of CKIT.H
  422.  
  423. -   CKIT.H had a variable called current_conference.  This should
  424.     have been called current_conf.  fixed
  425.  
  426. -   If you were using pos_cursor() (ANSI cursor control) and you
  427.     were displaying peices of a string on the same line, and
  428.     you didn't have any line feeds and you went past line 23
  429.     (into the local status bar), Ckit would try and scroll the
  430.     screen each time you called pos_cursor() with a row number
  431.     greater than 23 even though you were still on the same line.
  432.     Fixed.
  433.  
  434. 15-Jun-91 v1.8
  435.  
  436. -   Added support for FOSSIL drivers.  Ckit will now
  437.     detect if a fossil driver is in use.  See the
  438.     open_door() in the docs.  You will need to add
  439.     this to your door doc files.
  440.  
  441. -   Added more capability to inkey().  inkey() will now
  442.     watch time left and set DUMP_USER.
  443.  
  444. -   Included some useful information with using close_door()
  445.     and C's atexit() function.  Door authors need to
  446.     read this! and look at the ckitdemo.c usage of it.
  447.  
  448. -   Fixed a potential problem whereas if exit_msg[] was
  449.     a NULL,  Ckit could get hung up.
  450.  
  451. 05-May-91 v1.76D
  452.  
  453. -   Added chatmode set to TRUE when the sysop drops to DOS
  454.     so the door program can know that a screen re-fresh is
  455.     needed.  See chatmode usage in DOC file for more info.
  456.  
  457. -   Fixed the PORT:XXXX:X cmd, CKIT wasn't picking up the port
  458.     base address/irq correctly.
  459.  
  460.     NOTE DOOR AUTHORS:
  461.        You should include in your documentation the PORT usage
  462.        cmd and compile your door program to accept and pass
  463.        this information to open_door().  Pls see docs.
  464.  
  465. -   Fixed display_file() so it would not display the EOF
  466.     character.
  467.  
  468.  
  469. 24-Mar-91 v1.76
  470.  
  471. -   Added support for RBBS-PC and other systems using the DORINFOx.DEF
  472.     system files.
  473.  
  474. -   Source code for reading PCBoard data files are available on Data-Comp BBS
  475.     and may be linked with your C door program if desired.   RBBS and
  476.     and others will be as they become available.
  477.  
  478. 15-Feb-91 v1.75C
  479.  
  480. -   Not sure what happend 1.75B but anyway, the C version fixed
  481.     a few loose ends.
  482.  
  483. -   Fixed code so that door.sys, wildcat, and generic.sys files are closed
  484.     after a call to open_door().
  485.  
  486. -   Changed so that if sysop is logged on,  (using pcboard.sys),  the
  487.     firstname will be set to what is in the pcboard.sys file instead
  488.     of "sysop".
  489.  
  490. -   Added a pointer to the internal buffer that pcboard.sys is held and
  491.     which will be used to update pcboard.sys when returning to the board.
  492.     Added pointer to internal pcboard.sys buffer - BYTE *pcbsysbuf
  493.  
  494. -   Changed logoff_msg[] to exit_msg[].   logoff_msg[] is now displayed if
  495.     the user says good-bye within the door.  See CKIT.H for the macros
  496.     LOGOFF and EXITDOOR.  The complete log-off routines and source code
  497.     for reading pcboard.dat files are on Data-Comp BBS.  These can be
  498.     linked with CKIT if you want to add a log-off feature for PCBoard
  499.     doors.
  500.  
  501. 24-Nov-90 v1.75
  502. -   Fixed a problem in the last release for sysops using the
  503.     pcboard.sys file.  CKIT would always report "Time adjusted
  504.     for upcoming event".
  505.  
  506. 12-Nov-90 v1.75
  507. -   Added a function to update user record IF you are writing the
  508.     door for use with PCBoard 14.5.  The new function name is
  509.     update_user().
  510.  
  511. -   Added the ability to turn on and off Control K checking, if
  512.     desired.  This involves the additon of 3 functions.
  513.     CtrlK_ON, CtrlK_OFF, and check_CTRL_K.
  514.  
  515. -   Added chat mode via function key 10.  Also a variable
  516.     short chatmode is set to TRUE when chat mode has taken
  517.     place.
  518.  
  519. -   CKIT will now read a file called GENERIC.SYS.  This file
  520.     will allow the door to work on ANY BBS system, depending on
  521.     the level of information required for door.
  522.  
  523. -   Added some enhancements to the status line for the COM port
  524.     status.  It will now display the status of CTS, DTR, DSR
  525.     and DCD.
  526.  
  527. -   Fixed a problem with ALL the medium models.  Also fixed a
  528.     problem with the delay() function in the MSC libraries.
  529.     There is also a large memory model now available for
  530.     registered users.
  531.  
  532. 16-Sep-90 v1.71
  533.     Release of version 1.71
  534.         This release was intended to be a maintenance release.
  535.         There were, however, a few things added and a couple items
  536.         repaired.
  537.  
  538. -   Added a function to re-enable keyboard timer after it had been
  539.     turned off by a previous call to debug_on().  The new function
  540.     name is debug_off().
  541.  
  542. -   Added the ability to define your own error message for the
  543.     display_file() function.  error_msg11[40].  If you don't
  544.     define it, CKIT will use it's default.
  545.  
  546. -   More and more and more documentation updates and examples.
  547.     Too many additions to list here.  Mostly more examples and
  548.     better explanations.
  549.  
  550. -   Fixed the display_file() function so that it will properly
  551.     handle files that did not contain line feeds.  There will
  552.     also be a future release of display_file() that will handle
  553.     the ANSI screens better and include PCB color macros.
  554.  
  555. -   Close door was clearing the screen when exiting.  It no
  556.     longer does this.
  557.  
  558. -   Fixed the More: (Y)es, (N), (NS)non-stop prompt.  Somehow
  559.     in the last release, the last part of the string was missing
  560.     from the source code.
  561.  
  562. -   Also missing in the last release source code was the public
  563.     declares for transmit_modem, set_r_c and another function.
  564.     Not sure how this happened but it did.  Your linker will now
  565.     find these.
  566.  
  567. -   The page_length should be accurate now.  The bug that was in
  568.     PCBoard's 14.5 door.sys has been fixed and I changed CKIT to
  569.     give the true page length.
  570.  
  571. 01-Sep-90 v1.6
  572.     Release of version 1.7
  573.  
  574. -   Added support for reading scan codes from non-standard keys on
  575.     IBM keyboards. (F1-F10, Arrows, PgUp, PgDn, etc).
  576. -   Ability to define the logoff message and color
  577. -   Ability to change the port address and IRQ if needed.
  578.     PORT:AAAA:A where AAAA equal to port base address and A is IRQ
  579.     i.e PORT:02F8:3 would be the same as COM2.
  580. -   Additonal variables:
  581.     short scan_code, short logoff_color, char logoff_msg[40], short key_source
  582. -   Additonal functions:
  583.     short wait_keypress(void) for "hot_keys"
  584. -   open_door()'s prototype has been changed.  This allows one to pass
  585.     as many parameters as desired (up to the max. of 3), without having
  586.     to pass any dummy pointers.
  587. -   Fixed a problem in the cmd line where certain command line
  588.     parameters (callinfo.bbs and pcboard.sys) passed were case sensitive.
  589.     This caused CKIT to read them incorrectly.
  590. -   Cleaned up the status line display when certain information was not
  591.     available depending on which file was opened. (pcboard, door.sys, callinfo)
  592. -   Additional documentation added and improvements.
  593.     Once again, see open_door() for some changes and key_source.
  594.     The option variable documention has also been updated.
  595.     Also see the ckitdemo.c for more examples.
  596.  
  597. 19-Aug-90 v1.6
  598.     Release of version 1.6
  599.         Added support for WILDCAT! systems.  The following additonal
  600.         information is available for WILDCAT! users.
  601.         Additional WILDCAT! variables:
  602.                 monitor_type[5], max_sec[5], high_msg[5], door_opened[5],
  603.                 BYTE name_in_user
  604.         Additional variables for general use by any system:
  605.         short WILDCAT, protocol[15], security_level[5]
  606.  
  607.         See the CKIT.DOC for explanations and the compatibility chart.
  608.  
  609.   -     clr_screen() was not properly handling NON_ANSI callers.  fixed
  610.  
  611.   -     Under certain circumstances, a parsing routine in CKIT could get
  612.         hung up.  fixed.
  613.  
  614.   -      Reduction of code size by about 5% relative.
  615.  
  616.   -     Fixed some documentation errors.  In particular, you may want to
  617.         reprint the open_door() page and progname variable page.
  618.         Also there are new variables listed above in the doc file and
  619.         the compatibility chart has been upgraded.
  620.  
  621.   -     Look over the NEW CKITDEMO.C and CKITDEMO.H files.  The demo
  622.         demostrates some use of added features, (zmodem download,
  623.         pcb, wildcat! etc).
  624.  
  625. 13-Aug-90 v1.5A
  626.     Release of version 1.5A
  627.         I can't believe I did this.  After telling everyone to make
  628.         sure and not have debug_on in the released versions of their
  629.         door,  I released CKIT with debug on!.  As a result, the
  630.         keyboard timer and some other things would not work
  631.         properly. This release with a code date 8/13/90 will work
  632.         properly.
  633. 11-Aug-90 v1.5
  634.     Release of version 1.5
  635.         Ckit is now compatible with PCBoard version 12.0, 14.x-14.5, GAP
  636.         BBS, and other BBS systems using the standard door.sys file.
  637.         The level of compatiblity is up to the door author and the type
  638.         of information needed.  There is a lot of information available,
  639.         but by keeping this to a minimum, the door author can write his
  640.         door to be compatible with all the systems above with no extra
  641.         instructions to the user of the door except for the PCBoard
  642.         sysop to use either pcboard.sys or door.sys.  (Version 12.0
  643.         would have to use pcboard.sys and all others use door.sys.)
  644.         CKIT will automatically determine which file to read and which
  645.         PCBoard version is in use.  See the compatiblity section in this
  646.         doc file for more information and a Variables Quick-Reference.
  647.  
  648.     -   Added more features and cosmetics to the program's status line
  649.         for the sysop's use...
  650.         F8      - Return user to BBS.  This was always there, I just
  651.                   forgot to document it.  :)
  652.         F5      - Shell to DOS
  653.         ALT-X   - Sets the PCBoard's exit to DOS after caller flag
  654.         ALT-N   - Sets the PCBoard's sysop on next after caller flag
  655.         ALT-H   - Display Help Screen on sysop status line, and next
  656.                   ALT-H will show com port status
  657.  
  658.    -    Functions added are:
  659.  
  660.         dos_shell(char *) - Allow door author to shell to another program
  661.                               for execution if desired.  See CKIT.DOC
  662.  
  663.         _debug_on(void);  - Turns off keyboard timer and other things
  664.                             while door author is debugging his door.
  665.  
  666.   -     Additional variables:
  667.         short   PCB, PCB12, expert, parity, *conferences, current_conference,
  668.                 caller_bday[8], main_dir[15], gen_dir[15], sysop_name[15],
  669.                 sysop_alias[15], page_length, ansi_ng, default_color[2],
  670.                 last_dir_scan[8], daily_files[4], total_doors[4],
  671.                 msgs_left[4], max_files[4], upload_Kbytes[10],
  672.                 download_Kbytes[10], dload_total[5], upload_total[5]
  673.  
  674.   -     Added my own math routine so you no longer have to include
  675.         MATH.LIB if you are using TC compiler.
  676.  
  677.   -      Reduction of code size by about 20% relative.
  678. 25-Jul-90 v1.1
  679.     Release of version 1.1
  680.         This release was a little premature.  I went ahead and released
  681.         it since it did fix a couple of problems. "*" indicates a new
  682.         feature.  Pages in CKIT.DOC for display_file(), input(),
  683.         purge_buffer(), check_CR(), check_keypress() have been updated/added
  684.         and you may want to reprint these.
  685.  
  686.         Display_file() -
  687.         a. It will now put a space before the filename when it reports a
  688.            problem.
  689.         b. The EOF is no longer displayed.
  690.         c. display_file() will now correctly display text files that have ANSI
  691.            codes embedded in the file.
  692.         d. CTRL-K now works on the local keyboard. (The remote keyboard was OK)
  693.       * e. display_file() will now return TRUE/FALSE to indicate whether a
  694.            problem had occured.  You can then check the C global variable
  695.            _errno for cause of error.
  696.       * f. Fixed problem when user.page_length was equal to 0.  See the
  697.            CKIT.DOC for hints on how to take advantage of this.
  698.  
  699.     2. display_time() -  Would not update the time used until after
  700.                         two carriage returns were entered.  fixed
  701.     3. input()
  702.  
  703.         a. Control characters or any non-displayable characters below 1F hex
  704.            will not increase the counter.  This corrects the problem of being
  705.            to backspace too far and erasing the prompts.
  706.       * b. Each call to input() now will purge the buffer you wish to place
  707.            keyboard input.  You should no longer have to include the statement
  708.            memset(buffer, 0, 21) before calling input().
  709.       * c. A new function purge_buffer will purge any buffer to NULLS by
  710.            passing a pointer to the buffer and the size of the buffer.
  711.            i.e purge_buffer(buffer, 0x80).
  712.            This may or may not be useful but is available.
  713.  
  714.          NOTE: There is a seperate purge function for the serial port input
  715.            buffer if you wish to purge it before calling input.
  716.            See CKIT.DOC
  717.  
  718.       * d. New function available called check_keypress. Checks for any
  719.            specific ASCII character.
  720.            This function will return TRUE/FALSE as defined in CKIT.DOC.
  721.  
  722.       * e. Another new function called check_CR will check for a carriage
  723.            return and return TRUE/FALSE.
  724.  
  725.     4. get_nextpar() - Would only accept 2 stacked commands, fixed.
  726.  
  727.   While working on the get_nextpar() function,  I went ahead and targeted it
  728.   for some optimization along with the get_cmdline() function.
  729.   The results are:
  730.    get_nextpar() is now smaller and 7% faster.
  731.    get_cmdline() is now smaller and 45% faster.
  732.  Overall, with all the corrections and added functions the .obj file for
  733.  CKIT is now 2% SMALLER than before.
  734.  
  735. 25-Jun-90 v1.05
  736.     Release of version 1.05
  737.  
  738.         Added support for 16550AN UART.  The code will take advantage
  739.         of 16550AN chip if present.  Added caller log function.
  740.         Begin including the medium library with Zip.  This was done
  741.         because of the self-registering feature.  Took out time limit
  742.         that CKIT originally had.  Future releases will not have any
  743.         limitations.
  744.  
  745. 20-Jun-90 v1.0
  746.     Release of version 1.0C
  747.  
  748.         Fixed another minor problem where the assembler I used had
  749.         converted all my functions to uppercase in the .obj file.
  750.         I thought the default was to not do that but as it turns out
  751.         it wasn't.  Now all the library function names/variables are
  752.         the right case.
  753.  
  754. 16-Jun-90 v1.0
  755.     Release of version 1.0B
  756.  
  757. 01-Jun-90 v1.0
  758.     Release of version 1.0
  759.  
  760. 01-May-90 v1.0
  761.    Initial BETA testing as CKIT10ß.ZIP
  762.  
  763.         Beta 1.0 release.  The next release of CKIT, I predict, should have
  764.         about a 15% to 20% reduction in code size. If you find any problems
  765.         with CKIT, please contact me at the phone numbers/address above.
  766.  
  767.